/*
 * $ cd build
 * $ CXX=g++ cmake ../src
 * $ cmake --build .
 * gprof bin\Debug\GeneticAlgorithm.exe gmon.out> gprofresult.txt
 */
#include <iostream>
#include "GeneticAlgorithm/Multithreading.h"

using namespace GeneticAlgorithm;
using namespace std;

int main()
{
    Multithreading mainProcess = Multithreading(4);
    mainProcess.setDebug(false);
    mainProcess.run(
        30, // 种群大小
        136, // 染色体长度
        -10, // 初始范围
        10, // 初始范围
        0, // 最大迭代次数
        99.99, // 停止迭代适应度
        0.01 // 变异概率，随便变动范围系数
    );
    cout << "Max fitness=" << mainProcess.getMaxFitness() << endl;
    for (int i = 0; i < 10; i++) {
        mainProcess.exchange();
        mainProcess.runContinue(10, 99.99, 0.01);
        cout << i << ",Max fitness=" << mainProcess.getMaxFitness() << ",loop=" << mainProcess.getLoopNumber() << endl;
    }
    return 0;
}
